#pragma once
#include "../user/user.hpp"
#include <vector>

class Land;

class ToolBase{
protected:
	ToolType type;
	char outCh;
	Color color;
public:
	virtual ~ToolBase(){};
	// char of draw
	virtual char MapChar() const {return outCh;};
	virtual Color MapColor() const {return color;};
	virtual bool PassFunction(User& user,std::vector<Land>& map,std::unordered_map<int,User*>& users)=0;
	virtual void PutFunction(int putPos,User& user,std::vector<Land>& map,std::unordered_map<int,User*>& users)=0;
	virtual ToolType GetType(){return type;};
};

